home *** CD-ROM | disk | FTP | other *** search
/ The Complete Utilities To…ka 501 Killer Utilities! / 501 Killer Utilities! (Macworld July 1995).cdr / Programming / OutOfPhase1.1 Source / OutOfPhase Folder / TrackEffectGenerator.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-05  |  2.4 KB  |  68 lines  |  [TEXT/KAHL]

  1. /* TrackEffectGenerator.h */
  2.  
  3. #ifndef Included_TrackEffectGenerator_h
  4. #define Included_TrackEffectGenerator_h
  5.  
  6. /* TrackEffectGenerator module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definitions */
  11. /* EffectSpecList */
  12. /* FixedPoint */
  13. /* Memory */
  14. /* BinaryCodedDecimal */
  15. /* LinearTransition */
  16. /* NoteObject */
  17. /* IncrementalParameterUpdator */
  18. /* NLProc */
  19. /* FilterArray */
  20. /* Analyzer */
  21.  
  22. #include "FixedPoint.h"
  23.  
  24. struct TrackEffectGenRec;
  25. typedef struct TrackEffectGenRec TrackEffectGenRec;
  26.  
  27. /* forwards */
  28. struct EffectSpecListRec;
  29. struct NoteObjectRec;
  30. struct MainWindowRec;
  31.  
  32. /* dispose of cached effect generator structures */
  33. void                                    FlushTrackEffectGeneratorInfo(void);
  34.  
  35. /* create a new track effect generator */
  36. TrackEffectGenRec*        NewTrackEffectGenerator(struct EffectSpecListRec* SpecList,
  37.                                                 long FramesPerSecond, MyBoolean DoingStereo,
  38.                                                 float InverseVolume, struct MainWindowRec* MainWindow,
  39.                                                 long ScanningGapWidthInEnvelopeTicks);
  40.  
  41. /* dispose of a track effect generator */
  42. void                                    DisposeTrackEffectGenerator(TrackEffectGenRec* Generator);
  43.  
  44. /* generate effect cycle.  this is called once per envelope tick to apply */
  45. /* effects to data generated during this envelope clock cycle. */
  46. void                                    ApplyTrackEffectGenerator(TrackEffectGenRec* Generator,
  47.                                                 largefixedsigned* Data, long NumFrames);
  48.  
  49. /* hand off command to be handled by effect generator.  the command will be scheduled */
  50. /* to occur at the time ScanningGapFrontInEnvelopeTicks (which will be */
  51. /* ScanningGapWidthInEnvelopeTicks in the future from now). */
  52. MyBoolean                            TrackEffectHandleCommand(TrackEffectGenRec* Generator,
  53.                                                 struct NoteObjectRec* Command,
  54.                                                 long ScanningGapFrontInEnvelopeTicks);
  55.  
  56. /* increment duration timer.  this is called once per envelope tick to adjust */
  57. /* all of the parameter transition tracking devices.  this should be called at */
  58. /* the end of an envelope cycle to prepare the initial values for the next cycle. */
  59. void                                    TrackEffectIncrementDurationTimer(TrackEffectGenRec* Generator,
  60.                                                 long NumDurationTicks);
  61.  
  62. /* process commands in the queue that occur now.  this should be called after */
  63. /* queueing commands, but before incrementing the execution index, and before */
  64. /* processing the data, so that commands are handled at the beginning of a transition. */
  65. void                                    TrackEffectProcessQueuedCommands(TrackEffectGenRec* Generator);
  66.  
  67. #endif
  68.